package com.itheima_01.studentsystem;
import java.util.ArrayList;
import java.util.Scanner;

public class MyStudentTest {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        ArrayList<Student> list=new ArrayList<>();

        lo:
        while (true){
            System.out.println("-----欢迎来到学生管理系统-----");
            System.out.println("1、添加学生");
            System.out.println("2、删除学生");
            System.out.println("3、修改学生");
            System.out.println("4、查看学生");
            System.out.println("5、退出");
            System.out.println("请输入功能所对应的序号：");
            String choice=sc.next();
            switch (choice){
                case "1":
                    //System.out.println("添加学生！");
                    addStudent(list);
                    break;
                case "2":
                    //System.out.println("删除学生！");
                    deleteStudent(list);
                    break;
                case "3":
                    //System.out.println("修改学生！");
                    updateStudent(list);
                    break;
                case "4":
                    //System.out.println("查看学生！");
                    queryStudent(list);
                    break;
                case "5":
                    System.out.println("谢谢您的使用！");
                    break lo;
                default:
                    System.out.println("您的输入有误！");
                    break ;
            }
        }
    }

    public static void queryStudent(ArrayList<Student> list) {
        if (list.size()==0){
            System.out.println("没有数据，请添加信息后再查询！");
            return;
        }
        System.out.println("学号\t姓名\t年龄\t生日");
        for (int i = 0; i < list.size(); i++) {
            Student stu=list.get(i);
            System.out.println(stu.getSid()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getBirthday());
        }
    }

    public static void addStudent(ArrayList<Student> list) {
        Scanner sc=new Scanner(System.in);
        String sid;
        while (true){
            System.out.println("请输入学生学号：");
                sid=sc.next();
                int index=getIndex(list,sid); //
                if (index==-1){//判断在集合中是否存在跟传入的id一样的id
                    break ;
                }
        }

        System.out.println("请输入学号：");
        sid=sc.next();
        System.out.println("请输入姓名：");
        String name=sc.next();
        System.out.println("请输入年龄：");
        int age=sc.nextInt();
        System.out.println("请输入生日：");
        String birthday=sc.next();

        Student stu=new Student(sid,name,age,birthday);
        list.add(stu);
        System.out.println("添加成功！");

    }
    public static void updateStudent(ArrayList<Student> list) {
        Scanner sc =new Scanner(System.in);
        System.out.println("请输入要修改学生信息的学号：");
        String updateId=sc.next();
        int index=getIndex(list,updateId);
        if (index==-1){
            System.out.println("没有找到您所输入的学号信息！请重新输入！");
        }else {
            System.out.println("请输入新的姓名：");
            String name=sc.next();
            System.out.println("请输入新的年龄：");
            int age=sc.nextInt();
            System.out.println("请输入新的生日：");
            String birthday=sc.next();
            Student stu=new Student(updateId,name,age,birthday);
            list.set(index,stu);
            System.out.println("修改成功！");
        }

    }
    public static void deleteStudent(ArrayList<Student> list) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入您要删除的学生信息的学号:");
        String id=sc.next();
        int index=getIndex(list,id);
        if(index==-1){
            System.out.println("没有找到您所输入的学号信息！请重新输入！");
        }else {
            list.remove(index);
            System.out.println("删除成功！");
        }

    }


    public static int getIndex(ArrayList<Student> list,String id) {//获取索引，为防止有多个学号做准备
        for (int i = 0; i < list.size(); i++) {
            Student stu=list.get(i);
            String sid=stu.getSid(); //
            if (id.equals(sid)){//判断在集合中是否存在跟传入的id一样的id
                return i;
            }
        }
        return -1;
    }
}
